package com.wlz.provider;

import com.wlz.framework.Protocol;
import com.wlz.framework.ProtocolFactory;
import com.wlz.framework.URL;
import com.wlz.framework.register.LocalRegister;
import com.wlz.framework.register.RemoteMapRegister;
import com.wlz.provider.api.HelloService;
import com.wlz.provider.api.impl.HelloServiceImpl;
import lombok.extern.slf4j.Slf4j;


/**
 *  服务生产者
 * @author wlz
 * @date 2022-07-11  8:42 下午
 */
@Slf4j
public class Provider {

    public static void main(String[] args) {

        /*********  一、最初 实现*******/
       /* // 1. 本地服务注册
        LocalRegister.register(HelloService.class.getName(), HelloServiceImpl.class);
        // 2. 启动 Tomcat\netty
        HttpServer httpServer = new HttpServer();
        httpServer.start("localhost", 8080);*/



        /********* // 二、改进 实现*******/

      /*  // 1. 本地服务注册
        LocalRegister.register(HelloService.class.getName(), HelloServiceImpl.class);

        // 2. 注册中心注册
        URL url = new URL("localhost", 8080);
        RemoteMapRegister.register(HelloService.class.getName(), url);

        // 3. 启动 Tomcat\netty
        HttpServer httpServer = new HttpServer();
        httpServer.start(url.getHostname(), url.getPort());*/


       /* *//********* // 三、再改进 实现*******//*

        // 1. 本地服务注册
        LocalRegister.register(HelloService.class.getName(), HelloServiceImpl.class);

        // 2. 注册中心注册
        URL url = new URL("localhost", 8080);
        RemoteMapRegister.register(HelloService.class.getName(), url);

        // 3. 启动 Tomcat\netty
        Protocol protocol = new HttpProtocol();
        protocol.start(url);*/

        /********* // 四、再再改进 实现    -DprotocolName=dubbo *******/

        // 1. 本地服务注册
        LocalRegister.register(HelloService.class.getName(), HelloServiceImpl.class);

        // 2. 注册中心注册
        URL url = new URL("localhost", 8080);
        RemoteMapRegister.register(HelloService.class.getName(), url);

        // 3. 启动 Tomcat\netty
        Protocol protocol = ProtocolFactory.getProtocol();
        protocol.start(url);

    }
}
